1. Field of the Invention
The present invention relates to flashing a corrupted image in a non-volatile memory, and more specifically to prompting the user for an administrative password using keyboard LEDs or an audible beep such that the user can flash the corrupted ROM.
2. Description of the Related Art
The pursuit of low maintenance computers has been a defining issue among personal computer manufactures for many years. The satisfaction of a personal computer (PC) user is related to the reliability of the PC and to the ease of the troubleshooting/correction procedures. PCs that require a low level of maintenance or eliminate troubleshooting and repair by outside technicians have advantages over maintenance intensive PCs. An error which often exceeds the average user's skill level is when the PC's system programmable Read Only Memory (ROM) becomes corrupt.
Historically ROM, which is non-volatile, was not in-system updatable. ROM memories store code and data required to initialize and operate a system. However, as system enhancement and upgrades became common, the desirability of an updatable ROM increased. A need for an updatable ROM was met by the creation of the Electrically-Erasable-Programmable-Read-Only-Memory (EEPROM). The EEPROM is in-system writable and non-volatile. The EEPROM, by means of an electric pulse, can be programmed and erased. A more recent innovation in the memory technology field is Flash ROM. Flash ROM is inherently non-volatile and allows for in-system updateability. Flash ROM can be updated by "flashing" a new ROM image on to the chip, while the system is operational, from a variety of possible sources, including removable media devices, modem links, or parallel or serial connectors.
Flash ROMs are frequently used to store embedded code in the PC. A PC system ROM traditionally contains the resident code that runs the system. A Basic Input/Output System (BIOS) is a typical embedded code storage application of the PC. The BIOS is low level code interfacing the operating system to the specific hardware implementation. Typical BIOS functions include the initialization of disk drives, including floppy, hard, and compact, and initialization of the video and graphical interfaces. The BIOS is specifically configured for each PC based on the presence of specific hardware and the current version or manufacturer of the hardware. If the PC hardware is updated or modified, the BIOS may need to be upgraded to properly initialize the new hardware. An updated BIOS can be flashed, by the user, to the Flash ROM, after the user has replaced or upgraded a component to the PC.
A potential problem exists when an updated BIOS is flashed. An incorrect BIOS could inadvertently be flashed or the flash could be interrupted resulting in a corrupted ROM. If this occurs, the system would not initialize. To prevent this, the Flash ROM memory array is divided into two distinct sections, the boot block and the main block. The previously discussed applications have all resided in the main block of the Flash ROM. The boot block of the Flash ROM is protected from an ordinary flash, and that data remains even after a corrupted Flash ROM image is flashed.
The boot block can thus be used to store kernel code necessary to initialize the basic components of the system if a corrupted ROM image is present. This may be no more than code sufficient to allow the corrupted ROM to be re-flashed. Typically, the boot block code cannot be altered by standard ROM power levels, such as 3-5 volts, the levels necessary to perform an in-system ROM flash. Instead, the boot block code is usually programmed by using higher voltage levels, such as 12 volts. Therefore even if the ROM is incorrectly flashed because of the code present in the boot block, the system still initializes enough to allow the user to flash the correct ROM image to the Flash ROM, using a variety of techniques. The boot block traditionally contains minimal initialization routines for a floppy disk and a keyboard, but no video interface because of the size of that code and its non-standard nature. Further convenience in the ability to correct a corrupted ROM would be desirable.
With the increase in distributed networks and the abilities of PCs to link to each other and to link to various networks, improvements in PC security is also desirable. Historically, a PC could be "secured" by physical isolation. Today's networked environment, however, makes such total isolation impractical. Therefore, techniques that enhance security of PCs would also be desirable.